package cn.dakaqi.services;

import cn.dakaqi.entities.ActivityApply;
import cn.dakaqi.entities.ActivityRecruitVolunteer;
import cn.dakaqi.utils.exception.ServiceRuntimeException;
import org.springframework.data.domain.Page;

/**
 * @author chunyang on 2016/4/19.
 */
public interface ActivityRecruitVolunteerService {
    void create(String param) throws ServiceRuntimeException;

    void save(ActivityRecruitVolunteer activityRecruitVolunteer) throws ServiceRuntimeException;

    ActivityApply apply(String memberCode, String activityCode, String answer);

    ActivityApply apply(String param) throws ServiceRuntimeException;

    ActivityApply saveApply(ActivityRecruitVolunteer activityRecruitVolunteer) throws ServiceRuntimeException;

    void update(ActivityRecruitVolunteer activityRecruitVolunteer) throws ServiceRuntimeException;

    Page<ActivityRecruitVolunteer> findAll(Long activityRecruitId, int pageNumber) throws ServiceRuntimeException;

    Page<ActivityRecruitVolunteer> findByActivityRecruit(Long activityRecruitId, int status, int pageNumber) throws ServiceRuntimeException;

    Page<ActivityRecruitVolunteer> findByActivityRecruit(String activityCode, int status, int pageNumber) throws ServiceRuntimeException;

    void updateStatus(String param) throws ServiceRuntimeException;

    void updateStatus(Long activityRecruitVolunteerId, int status, String refuseCase) throws ServiceRuntimeException;

    ActivityRecruitVolunteer findOne(Long activityRecruitVolunteerId) throws ServiceRuntimeException;

    ActivityRecruitVolunteer findOne(String activityCode, String memberCode) throws ServiceRuntimeException;

    ActivityRecruitVolunteer isApply(Long activityRecruitId, String memberCode) throws ServiceRuntimeException;

    void exit(String param) throws ServiceRuntimeException;

    void exit(ActivityRecruitVolunteer activityRecruitVolunteer) throws ServiceRuntimeException;
}
